class CacheModel {
    constructor() {
        this.front = '';
    }

    get(key) {
        // #ifdef H5
        return localStorage.getItem(this.front + key);
        // #endif
        // #ifndef H5
        return uni.getStorageSync(this.front + key);
        // #endif
    }

    set(key, value) {
        // #ifdef H5
        localStorage.setItem(this.front + key, value);
        // #endif
        // #ifndef H5
        uni.setStorageSync(this.front + key, value);
        // #endif
    }

    setJson(key, value) {
        // #ifdef H5
        localStorage.setItem(this.front + key, JSON.stringify(value));
        // #endif
        // #ifndef H5
        uni.setStorageSync(this.front + key, value);
        // #endif
    }

    getJson(key) {
        // #ifdef H5
        if (this.has(key)) {
            return JSON.parse(this.get(key))
        } else {
            return null;
        }
        // #endif
        // #ifndef H5
        return uni.getStorageSync(this.front + key);
        // #endif
    }

    has(key) {
        return localStorage.getItem(this.front + key) !== null;
    }

    remove(key) {
        // #ifdef H5
        localStorage.removeItem(this.front + key);
        // #endif
        // #ifndef H5

        try {
            uni.removeStorageSync(this.front + key);
        } catch (e) {
            // error
        }
        // #endif

    }
}

const Cache = new CacheModel();

export default Cache;

export {
    Cache,
    CacheModel
}
